/*
 * RutasDocumentos.h
 *
 *  Created on: 06/11/2011
 *      Author: putaro
 */
#include <cstring>
#include <stdlib.h>
#include <fstream>
#include "GeneradorDeListadoDeDirectorio.h"

#ifndef RUTASDOCUMENTOS_H_
#define RUTASDOCUMENTOS_H_
/*
 * Una instancia de esta clase permite administrar las consultas a los archivos
 * que contienen las rutas de los documentos de un directorio.
 * Dichos archivos han sido generados por medio de la clase utilitaria
 * GeneradorDeListadoDeDirectorio.
 */

class RutasDocumentos {

private:
	//archivo que contiene las rutas concatenadas
	ifstream principal;
	//archivo que contiene la información de cada uno de los documentos
	ifstream punteros;

public:

	/*
	 * Pre: El parámetro ruta es la dirección del directorio dónde se encuentran
	 * el archivo que tiene las rutas concatenadas y el archivo que tiene los
	 * punteros al mismo.
	 * 	Ejemplo de ruta: "/home/" , ""
	 * Pos: Se ha creado la instancia quedando lista para realizar consultas sobre
	 * las rutas recuperadas.
	 */
	RutasDocumentos(const string & ruta);

	/*
	 * Pre: La instancia ha sido creada.
	 * Post: Se retorna un puntero a una instancia de string que contiene la ruta
	 * de la siguiente ruta recuperada.
	 * RETURNS: Si no se pudo recurrar la ruta se retorna NULL.
	 */
	string* readNext();

	/*
	 * Pre: La instancia ha sido creada y el parámetro es el id de un documento
	 * válido.
	 * Post: Se retorna un puntero a una instancia de string que contiene la ruta
	 * del documento dado por el id pasado por parámetro.
	 * RETURNS: Si no se pudo recurrar la ruta se retorna NULL.
	*/
	string* read(unsigned int idDocumento);

	/*
	 * Pre: La instancia ha sido creada.
	 * Post: La instancia ha sido destruida liberando recursos.
	 */
	virtual ~RutasDocumentos();
};

#endif /* RUTASDOCUMENTOS_H_ */
